#xpath 

#### Выбирается корневой узел AAA
```
xpath = /AAA

<AAA>                     <- Выбранный элемент
     <BBB/>
     <CCC/>
     <BBB/>
     <BBB/>
     <DDD>
          <BBB/>
     </DDD>
     <CCC/>
</AAA>                    <- Выбранный элемент
```

#### Выбираются все элементы CCC, являющиеся дочерними по отношению к корневому узлу AAA
```
xpath = /AAA/CCC

<AAA>
     <BBB/>
     <CCC/>               <- Выбранный элемент
     <BBB/>
     <BBB/>
     <DDD>
          <BBB/>
     </DDD>
     <CCC/>               <- Выбранный элемент
</AAA>
```

#### Выбираются все элементы BBB, являющиеся детьми элементов DDD, которые в свою очередь являются детьми корневого узла AAA
```
xpath = /AAA/DDD/BBB

<AAA>
     <BBB/>
     <CCC/>
     <BBB/>
     <BBB/>
     <DDD>
          <BBB/>          <- Выбранный элемент
     </DDD>
     <CCC/>
</AAA>
```

#### Будут выбраны все элементы BBB
```
xpath = //BBB

<AAA>
     <BBB/>                    <- Выбранный элемент
     <CCC/>
     <BBB/>                    <- Выбранный элемент
     <DDD>
          <BBB/>               <- Выбранный элемент
     </DDD>
     <CCC>
          <DDD>
               <BBB/>          <- Выбранный элемент
               <BBB/>          <- Выбранный элемент
          </DDD>
     </CCC>
</AAA>
```

#### Будут выбраны все элементы BBB, являющиеся детьми DDD
```
xpath = //DDD/BBB

<AAA>
     <BBB/>
     <CCC/>
     <BBB/>
     <DDD>
          <BBB/>               <- Выбранный элемент
     </DDD>
     <CCC>
          <DDD>
               <BBB/>          <- Выбранный элемент
               <BBB/>          <- Выбранный элемент
          </DDD>
     </CCC>
</AAA>
```

#### Будут выбраны все элементы, являющиеся прямыми потомками /AAA/CCC/DDD
```
xpath = /AAA/CCC/DDD/*

<AAA>
     <XXX>
          <DDD>
               <BBB/>
               <BBB/>
               <EEE/>
               <FFF/>
          </DDD>
     </XXX>
     <CCC>
          <DDD>
               <BBB/>               <- Выбранный элемент
               <BBB/>               <- Выбранный элемент
               <EEE/>               <- Выбранный элемент
               <FFF/>               <- Выбранный элемент
          </DDD>
     </CCC>
     <CCC>
          <BBB>
               <BBB>
                    <BBB/>
               </BBB>
          </BBB>
     </CCC>
</AAA>
```

#### Будут выбраны все элементы ВВВ, имеющие трех предков
```
xpath = /*/*/*/BBB

<AAA>
     <XXX>
          <DDD>
               <BBB/>               <- Выбранный элемент
               <BBB/>               <- Выбранный элемент
               <EEE/>
               <FFF/>
          </DDD>
     </XXX>
     <CCC>
          <DDD>
               <BBB/>               <- Выбранный элемент
               <BBB/>               <- Выбранный элемент
               <EEE/>
               <FFF/>
          </DDD>
     </CCC>
     <CCC>
          <BBB>
               <BBB>                <- Выбранный элемент
                    <BBB/>
               </BBB>               <- Выбранный элемент
          </BBB>
     </CCC>
</AAA>
```

#### Будут выбраны все элементы
```
xpath = //*

<AAA>                               <- Выбранный элемент
     <XXX>                          <- Выбранный элемент
          <DDD>                     <- Выбранный элемент
               <BBB/>               <- Выбранный элемент
               <BBB/>               <- Выбранный элемент
               <EEE/>               <- Выбранный элемент
               <FFF/>               <- Выбранный элемент
          </DDD>                    <- Выбранный элемент
     </XXX>                         <- Выбранный элемент
     <CCC>                          <- Выбранный элемент
          <DDD>                     <- Выбранный элемент
               <BBB/>               <- Выбранный элемент
               <BBB/>               <- Выбранный элемент
               <EEE/>               <- Выбранный элемент
               <FFF/>               <- Выбранный элемент
          </DDD>                    <- Выбранный элемент
     </CCC>                         <- Выбранный элемент
     <CCC>                          <- Выбранный элемент
          <BBB>                     <- Выбранный элемент
               <BBB>                <- Выбранный элемент
                    <BBB/>          <- Выбранный элемент
               </BBB>               <- Выбранный элемент
          </BBB>                    <- Выбранный элемент
     </CCC>                         <- Выбранный элемент
</AAA>                              <- Выбранный элемент
```

#### Будет выбран первый потомок BBB элемента AAA
```
xpath = /AAA/BBB[1]

<AAA>
     <BBB/>          <- Выбранный элемент
     <BBB/>
     <BBB/>
     <BBB/>
</AAA>
```

#### Будет выбран последний потомок BBB элемента AAA
```
xpath = /AAA/BBB[last()]

<AAA>
     <BBB/>
     <BBB/>
     <BBB/>
     <BBB/>          <- Выбранный элемент
</AAA>
```

#### Выбираются элементы, имеющие два дочерних элемента BBB
```
xpath = //*[count(BBB)=2]

<AAA>
     <CCC>
          <BBB/>
          <BBB/>
          <BBB/>
     </CCC>
     <DDD>                <- Выбранный элемент
          <BBB/>
          <BBB/>
     </DDD>               <- Выбранный элемент
     <EEE>
          <CCC/>
          <DDD/>
     </EEE>
</AAA>
```

#### Выбираются элементы, имеющие два произвольных дочерних элемента
```
xpath = //*[count(*)=2]

<AAA>
     <CCC>
          <BBB/>
          <BBB/>
          <BBB/>
     </CCC>
     <DDD>                <- Выбранный элемент
          <BBB/>
          <BBB/>
     </DDD>               <- Выбранный элемент
     <EEE>                <- Выбранный элемент
          <CCC/>
          <DDD/>
     </EEE>               <- Выбранный элемент
</AAA>
```

#### Выбираются элементы, имеющие три произвольных дочерних элемента
```
xpath = //*[count(*)=3]

<AAA>                     <- Выбранный элемент
     <CCC>                <- Выбранный элемент
          <BBB/>
          <BBB/>
          <BBB/>
     </CCC>               <- Выбранный элемент
     <DDD>
          <BBB/>
          <BBB/>
     </DDD>
     <EEE>
          <CCC/>
          <DDD/>
     </EEE>
</AAA>                    <- Выбранный элемент
```

#### Выбираются все элементы с именем BBB; эквивалентно пути //BBB
```
xpath = //*[name()='BBB']

<AAA>
     <BCC>
          <BBB/>          <- Выбранный элемент
          <BBB/>          <- Выбранный элемент
          <BBB/>          <- Выбранный элемент
     </BCC>
     <DDB>
          <BBB/>          <- Выбранный элемент
          <BBB/>          <- Выбранный элемент
     </DDB>
     <BEC>
          <CCC/>
          <DBD/>
     </BEC>
</AAA>
```

#### Выбираются все элементы, имя которых начинается с B
```
xpath = //*[starts-with(name(),'B')]

<AAA>
     <BCC>                <- Выбранный элемент
          <BBB/>          <- Выбранный элемент
          <BBB/>          <- Выбранный элемент
          <BBB/>          <- Выбранный элемент
     </BCC>               <- Выбранный элемент
     <DDB>
          <BBB/>          <- Выбранный элемент
          <BBB/>          <- Выбранный элемент
     </DDB>
     <BEC>                <- Выбранный элемент
          <CCC/>
          <DBD/>
     </BEC>               <- Выбранный элемент
</AAA>
```

#### Выбираются все элементы, имя которых содержит C
```
xpath = //*[contains(name(),'C')]

<AAA>
     <BCC>                <- Выбранный элемент
          <BBB/>
          <BBB/>
          <BBB/>
     </BCC>               <- Выбранный элемент
     <DDB>
          <BBB/>
          <BBB/>
     </DDB>
     <BEC>                <- Выбранный элемент
          <CCC/>          <- Выбранный элемент
          <DBD/>
     </BEC>               <- Выбранный элемент
</AAA>
```

#### Выбираются все элементы, имя которых состоит из трех символов
```
xpath = //*[string-length(name()) = 3]

<AAA>                     <- Выбранный элемент
     <Q/>
     <SSSS/>
     <BB/>
     <CCC/>               <- Выбранный элемент
     <DDDDDDDD/>
     <EEEE/>
</AAA>                    <- Выбранный элемент
```

#### Выбираются все элементы, имя которых состоит из двух или одного символа
```
xpath = //*[string-length(name()) < 3]

<AAA>
     <Q/>                 <- Выбранный элемент
     <SSSS/>
     <BB/>                <- Выбранный элемент
     <CCC/>
     <DDDDDDDD/>
     <EEEE/>
</AAA>
```

#### Выбираются все элементы, имя которых состоит более чем из трех символов
```
xpath = //*[string-length(name()) > 3]

<AAA>
     <Q/>
     <SSSS/>              <- Выбранный элемент
     <BB/>
     <CCC/>
     <DDDDDDDD/>          <- Выбранный элемент
     <EEEE/>              <- Выбранный элемент
</AAA>
```

#### Выбираются все элементы CCC и BBB
```
xpath = //CCC | //BBB

<AAA>
     <BBB/>               <- Выбранный элемент
     <CCC/>               <- Выбранный элемент
     <DDD>
          <CCC/>          <- Выбранный элемент
     </DDD>
     <EEE/>
</AAA>
```

#### Выбираются все элементы BBB и все элементы EEE, чьим прямым родителем является корневой элемент AAA
```
xpath = /AAA/EEE | //BBB

<AAA>
     <BBB/>               <- Выбранный элемент
     <CCC/>
     <DDD>
          <CCC/>
     </DDD>
     <EEE/>               <- Выбранный элемент
</AAA>
```

#### Количество комбинаций не ограничено
```
xpath = /AAA/EEE | //DDD/CCC | /AAA | //BBB

<AAA>                     <- Выбранный элемент
     <BBB/>               <- Выбранный элемент
     <CCC/>
     <DDD>
          <CCC/>          <- Выбранный элемент
     </DDD>
     <EEE/>               <- Выбранный элемент
</AAA>                    <- Выбранный элемент
```

#### Эквивалентно выражению /child::AAA
```
xpath = /AAA

<AAA>                <- Выбранный элемент
     <BBB/>
     <CCC/>
</AAA>               <- Выбранный элемент
```

#### Эквивалентно выражению /AAA
```
xpath = /child::AAA

<AAA>                <- Выбранный элемент
     <BBB/>
     <CCC/>
</AAA>               <- Выбранный элемент
```

#### Эквивалентно /child::AAA/child::BBB
```
xpath = /AAA/BBB

<AAA>
     <BBB/>          <- Выбранный элемент
     <CCC/>
</AAA>
```

#### Эквивалентно /AAA/BBB
```
xpath = /child::AAA/child::BBB

<AAA>
     <BBB/>          <- Выбранный элемент
     <CCC/>
</AAA>
```

#### Оба варианта можно использовать одновременно
```
xpath = /child::AAA/BBB

<AAA>
     <BBB/>          <- Выбранный элемент
     <CCC/>
</AAA>
```

#### Выбираются все потомки корневого узла, то есть все элементы
```
xpath = /descendant::*

<AAA>                                    <- Выбранный элемент
     <BBB>                               <- Выбранный элемент
          <DDD>                          <- Выбранный элемент
               <CCC>                     <- Выбранный элемент
                    <DDD/>               <- Выбранный элемент
                    <EEE/>               <- Выбранный элемент
               </CCC>                    <- Выбранный элемент
          </DDD>                         <- Выбранный элемент
     </BBB>                              <- Выбранный элемент
     <CCC>                               <- Выбранный элемент
          <DDD>                          <- Выбранный элемент
               <EEE>                     <- Выбранный элемент
                    <DDD>                <- Выбранный элемент
                         <FFF/>          <- Выбранный элемент
                    </DDD>               <- Выбранный элемент
               </EEE>                    <- Выбранный элемент
          </DDD>                         <- Выбранный элемент
     </CCC>                              <- Выбранный элемент
</AAA>                                   <- Выбранный элемент
```

#### Выбираются все потомки элементов, соответствующих пути /AAA/BBB
```
xpath = /AAA/BBB/descendant::*

<AAA>
     <BBB>
          <DDD>                          <- Выбранный элемент
               <CCC>                     <- Выбранный элемент
                    <DDD/>               <- Выбранный элемент
                    <EEE/>               <- Выбранный элемент
               </CCC>                    <- Выбранный элемент
          </DDD>                         <- Выбранный элемент
     </BBB>
     <CCC>
          <DDD>
               <EEE>
                    <DDD>
                         <FFF/>
                    </DDD>
               </EEE>
          </DDD>
     </CCC>
</AAA>
```

#### Выбираются все элементы, имеющие в качестве предка элемент CCC
```
xpath = //CCC/descendant::*

<AAA>
     <BBB>
          <DDD>
               <CCC>
                    <DDD/>               <- Выбранный элемент
                    <EEE/>               <- Выбранный элемент
               </CCC>
          </DDD>
     </BBB>
     <CCC>
          <DDD>                          <- Выбранный элемент
               <EEE>                     <- Выбранный элемент
                    <DDD>                <- Выбранный элемент
                         <FFF/>          <- Выбранный элемент
                    </DDD>               <- Выбранный элемент
               </EEE>                    <- Выбранный элемент
          </DDD>                         <- Выбранный элемент
     </CCC>
</AAA>
```

#### Выбираются элементы DDD, имеющие в качестве предка элемент CCC
```
xpath = //CCC/descendant::DDD

<AAA>
     <BBB>
          <DDD>
               <CCC>
                    <DDD/>               <- Выбранный элемент
                    <EEE/>
               </CCC>
          </DDD>
     </BBB>
     <CCC>
          <DDD>                          <- Выбранный элемент
               <EEE>
                    <DDD>                <- Выбранный элемент
                         <FFF/>
                    </DDD>               <- Выбранный элемент
               </EEE>
          </DDD>                         <- Выбранный элемент
     </CCC>
</AAA>
```

#### Выбираются все родители элемента DDD
```
xpath = //DDD/parent::*

<AAA>
     <BBB>                               <- Выбранный элемент
          <DDD>
               <CCC>                     <- Выбранный элемент
                    <DDD/>
                    <EEE/>
               </CCC>                    <- Выбранный элемент
          </DDD>
     </BBB>                              <- Выбранный элемент
     <CCC>                               <- Выбранный элемент
          <DDD>
               <EEE>                     <- Выбранный элемент
                    <DDD>
                         <FFF/>
                    </DDD>
               </EEE>                    <- Выбранный элемент
          </DDD>
     </CCC>                              <- Выбранный элемент
</AAA>
```

#### Выбираются все узлы, перечисленные в этом абсолютном пути
```
xpath = /AAA/BBB/DDD/CCC/EEE/ancestor::*

<AAA>                                    <- Выбранный элемент
     <BBB>                               <- Выбранный элемент
          <DDD>                          <- Выбранный элемент
               <CCC>                     <- Выбранный элемент
                    <DDD/>
                    <EEE/>
               </CCC>                    <- Выбранный элемент
          </DDD>                         <- Выбранный элемент
     </BBB>                              <- Выбранный элемент
     <CCC>
          <DDD>
               <EEE>
                    <DDD>
                         <FFF/>
                    </DDD>
               </EEE>
          </DDD>
     </CCC>
</AAA>                                   <- Выбранный элемент
```

#### Выбираются все предки элемента FFF
```
xpath = //FFF/ancestor::*

<AAA>                                    <- Выбранный элемент
     <BBB>
          <DDD>
               <CCC>
                    <DDD/>
                    <EEE/>
               </CCC>
          </DDD>
     </BBB>
     <CCC>                               <- Выбранный элемент
          <DDD>                          <- Выбранный элемент
               <EEE>                     <- Выбранный элемент
                    <DDD>                <- Выбранный элемент
                         <FFF/>
                    </DDD>               <- Выбранный элемент
               </EEE>                    <- Выбранный элемент
          </DDD>                         <- Выбранный элемент
     </CCC>                              <- Выбранный элемент
</AAA>                                   <- Выбранный элемент
```

#### Выбираются все следующие братья контекстного узла, пример 1
```
xpath = /AAA/BBB/following-sibling::*

<AAA>
     <BBB>
          <CCC/>
          <DDD/>
     </BBB>
     <XXX>                          <- Выбранный элемент
          <DDD>
               <EEE/>
               <DDD/>
               <CCC/>
               <FFF/>
               <FFF>
                    <GGG/>
               </FFF>
          </DDD>
     </XXX>                         <- Выбранный элемент
     <CCC>                          <- Выбранный элемент
          <DDD/>
     </CCC>                         <- Выбранный элемент
</AAA>
```

#### Выбираются все следующие братья контекстного узла, пример 2
```
xpath = //CCC/following-sibling::*

<AAA>
     <BBB>
          <CCC/>
          <DDD/>                    <- Выбранный элемент
     </BBB>
     <XXX>
          <DDD>
               <EEE/>
               <DDD/>
               <CCC/>
               <FFF/>               <- Выбранный элемент
               <FFF>                <- Выбранный элемент
                    <GGG/>
               </FFF>               <- Выбранный элемент
          </DDD>
     </XXX>
     <CCC>
          <DDD/>
     </CCC>
</AAA>
```

#### Выбираются все предыдущие братья контекстного узла, пример 1
```
xpath = /AAA/XXX/preceding-sibling::*

<AAA>
     <BBB>                          <- Выбранный элемент
          <CCC/>
          <DDD/>
     </BBB>                         <- Выбранный элемент
     <XXX>
          <DDD>
               <EEE/>
               <DDD/>
               <CCC/>
               <FFF/>
               <FFF>
                    <GGG/>
               </FFF>
          </DDD>
     </XXX>
     <CCC>
          <DDD/>
     </CCC>
</AAA>
```

#### Выбираются все предыдущие братья контекстного узла, пример 2
```
xpath = //CCC/preceding-sibling::*

<AAA>
     <BBB>                          <- Выбранный элемент
          <CCC/>
          <DDD/>
     </BBB>                         <- Выбранный элемент
     <XXX>                          <- Выбранный элемент
          <DDD>
               <EEE/>               <- Выбранный элемент
               <DDD/>               <- Выбранный элемент
               <CCC/>
               <FFF/>
               <FFF>
                    <GGG/>
               </FFF>
          </DDD>
     </XXX>                         <- Выбранный элемент
     <CCC>
          <DDD/>
     </CCC>
</AAA>
```

#### Выбираются все узлы поле контекстного, за исключением всех потомков, узлов атрибутов и пространств имен, пример 1
```
xpath = /AAA/XXX/following::*

<AAA>
     <BBB>
          <CCC/>
          <ZZZ>
               <DDD/>
               <DDD>
                    <EEE/>
               </DDD>
          </ZZZ>
          <FFF>
               <GGG/>
          </FFF>
     </BBB>
     <XXX>
          <DDD>
               <EEE/>
               <DDD/>
               <CCC/>
               <FFF/>
               <FFF>
                    <GGG/>
               </FFF>
          </DDD>
     </XXX>
     <CCC>                          <- Выбранный элемент
          <DDD/>                    <- Выбранный элемент
     </CCC>                         <- Выбранный элемент
</AAA>
```

#### Выбираются все узлы поле контекстного, за исключением всех потомков, узлов атрибутов и пространств имен, пример 2
```
xpath = //ZZZ/following::*

<AAA>
     <BBB>
          <CCC/>
          <ZZZ>
               <DDD/>
               <DDD>
                    <EEE/>
               </DDD>
          </ZZZ>
          <FFF>                     <- Выбранный элемент
               <GGG/>               <- Выбранный элемент
          </FFF>                    <- Выбранный элемент
     </BBB>
     <XXX>                          <- Выбранный элемент
          <DDD>                     <- Выбранный элемент
               <EEE/>               <- Выбранный элемент
               <DDD/>               <- Выбранный элемент
               <CCC/>               <- Выбранный элемент
               <FFF/>               <- Выбранный элемент
               <FFF>                <- Выбранный элемент
                    <GGG/>          <- Выбранный элемент
               </FFF>               <- Выбранный элемент
          </DDD>                    <- Выбранный элемент
     </XXX>                         <- Выбранный элемент
     <CCC>                          <- Выбранный элемент
          <DDD/>                    <- Выбранный элемент
     </CCC>                         <- Выбранный элемент
</AAA>
```

#### Выбираются все узлы, идущие перед контекстным, исключая любых предков, узлов атрибутов и пространств имен, пример 1
```
xpath = /AAA/XXX/preceding::*

<AAA>
     <BBB>                          <- Выбранный элемент
          <CCC/>                    <- Выбранный элемент
          <ZZZ>                     <- Выбранный элемент
               <DDD/>               <- Выбранный элемент
          </ZZZ>                    <- Выбранный элемент
     </BBB>                         <- Выбранный элемент
     <XXX>
          <DDD>
               <EEE/>
               <DDD/>
               <CCC/>
               <FFF/>
               <FFF>
                    <GGG/>
               </FFF>
          </DDD>
     </XXX>
     <CCC>
          <DDD/>
     </CCC>
</AAA>
```

#### Выбираются все узлы, идущие перед контекстным, исключая любых предков, узлов атрибутов и пространств имен, пример 2
```
xpath = //GGG/preceding::*

<AAA>
     <BBB>                          <- Выбранный элемент
          <CCC/>                    <- Выбранный элемент
          <ZZZ>                     <- Выбранный элемент
               <DDD/>               <- Выбранный элемент
          </ZZZ>                    <- Выбранный элемент
     </BBB>                         <- Выбранный элемент
     <XXX>
          <DDD>
               <EEE/>               <- Выбранный элемент
               <DDD/>               <- Выбранный элемент
               <CCC/>               <- Выбранный элемент
               <FFF/>               <- Выбранный элемент
               <FFF>
                    <GGG/>
               </FFF>
          </DDD>
     </XXX>
     <CCC>
          <DDD/>
     </CCC>
</AAA>
```

#### Выбираются контекстные узлы и все его потомки, пример 1
```
xpath = /AAA/XXX/descendant-or-self::*

<AAA>
     <BBB>
          <CCC/>
          <ZZZ>
               <DDD/>
          </ZZZ>
     </BBB>
     <XXX>                          <- Выбранный элемент
          <DDD>                     <- Выбранный элемент
               <EEE/>               <- Выбранный элемент
               <DDD/>               <- Выбранный элемент
               <CCC/>               <- Выбранный элемент
               <FFF/>               <- Выбранный элемент
               <FFF>                <- Выбранный элемент
                    <GGG/>          <- Выбранный элемент
               </FFF>               <- Выбранный элемент
          </DDD>                    <- Выбранный элемент
     </XXX>                         <- Выбранный элемент
     <CCC>
          <DDD/>
     </CCC>
</AAA>
```

#### Выбираются контекстные узлы и все его потомки, пример 2
```
xpath = //CCC/descendant-or-self::*

<AAA>
     <BBB>
          <CCC/>                    <- Выбранный элемент
          <ZZZ>
               <DDD/>
          </ZZZ>
     </BBB>
     <XXX>
          <DDD>
               <EEE/>
               <DDD/>
               <CCC/>               <- Выбранный элемент
               <FFF/>
               <FFF>
                    <GGG/>
               </FFF>
          </DDD>
     </XXX>
     <CCC>                          <- Выбранный элемент
          <DDD/>                    <- Выбранный элемент
     </CCC>                         <- Выбранный элемент
</AAA>
```

#### Выбирается контекстный узел и все его предки, таким образом, эта ось всегда содержит корневой узел, пример 1
```
xpath = /AAA/XXX/DDD/EEE/ancestor-or-self::*

<AAA>                               <- Выбранный элемент
     <BBB>
          <CCC/>
          <ZZZ>
               <DDD/>
          </ZZZ>
     </BBB>
     <XXX>                          <- Выбранный элемент
          <DDD>                     <- Выбранный элемент
               <EEE/>               <- Выбранный элемент
               <DDD/>
               <CCC/>
               <FFF/>
               <FFF>
                    <GGG/>
               </FFF>
          </DDD>                    <- Выбранный элемент
     </XXX>                         <- Выбранный элемент
     <CCC>
          <DDD/>
     </CCC>
</AAA>                              <- Выбранный элемент
```

#### Выбирается контекстный узел и все его предки, таким образом, эта ось всегда содержит корневой узел, пример 2
```
xpath = //GGG/ancestor-or-self::*

<AAA>                               <- Выбранный элемент
     <BBB>
          <CCC/>
          <ZZZ>
               <DDD/>
          </ZZZ>
     </BBB>
     <XXX>                          <- Выбранный элемент
          <DDD>                     <- Выбранный элемент
               <EEE/>
               <DDD/>
               <CCC/>
               <FFF/>
               <FFF>                <- Выбранный элемент
                    <GGG/>          <- Выбранный элемент
               </FFF>               <- Выбранный элемент
          </DDD>                    <- Выбранный элемент
     </XXX>                         <- Выбранный элемент
     <CCC>
          <DDD/>
     </CCC>
</AAA>                              <- Выбранный элемент
```

#### Оси ancestor, descendant, following, preceding и self axes покрывают документ и они не перескаются, пример 1
```
xpath = //GGG/ancestor::*

<AAA>                                         <- Выбранный элемент
     <BBB>
          <CCC/>
          <ZZZ/>
     </BBB>
     <XXX>                                    <- Выбранный элемент
          <DDD>                               <- Выбранный элемент
               <EEE/>
               <FFF>                          <- Выбранный элемент
                    <HHH/>
                    <GGG>
                         <JJJ>
                              <QQQ/>
                         </JJJ>
                         <JJJ/>
                    </GGG>
                    <HHH/>
               </FFF>                         <- Выбранный элемент
          </DDD>                              <- Выбранный элемент
     </XXX>                                   <- Выбранный элемент
     <CCC>
          <DDD/>
     </CCC>
</AAA>                                        <- Выбранный элемент
```

#### Оси ancestor, descendant, following, preceding и self axes покрывают документ и они не перескаются, пример 2
```
xpath = //GGG/descendant::*

<AAA>
     <BBB>
          <CCC/>
          <ZZZ/>
     </BBB>
     <XXX>
          <DDD>
               <EEE/>
               <FFF>
                    <HHH/>
                    <GGG>
                         <JJJ>                <- Выбранный элемент
                              <QQQ/>          <- Выбранный элемент
                         </JJJ>               <- Выбранный элемент
                         <JJJ/>               <- Выбранный элемент
                    </GGG>
                    <HHH/>
               </FFF>
          </DDD>
     </XXX>
     <CCC>
          <DDD/>
     </CCC>
</AAA>
```

#### Оси ancestor, descendant, following, preceding и self axes покрывают документ и они не перескаются, пример 3
```
xpath = //GGG/following::*

<AAA>
     <BBB>
          <CCC/>
          <ZZZ/>
     </BBB>
     <XXX>
          <DDD>
               <EEE/>
               <FFF>
                    <HHH/>
                    <GGG>
                         <JJJ>
                              <QQQ/>
                         </JJJ>
                         <JJJ/>
                    </GGG>
                    <HHH/>                    <- Выбранный элемент
               </FFF>
          </DDD>
     </XXX>
     <CCC>                                    <- Выбранный элемент
          <DDD/>                              <- Выбранный элемент
     </CCC>                                   <- Выбранный элемент
</AAA>
```

#### Оси ancestor, descendant, following, preceding и self axes покрывают документ и они не перескаются, пример 4
```
xpath = //GGG/preceding::*

<AAA>
     <BBB>                                    <- Выбранный элемент
          <CCC/>                              <- Выбранный элемент
          <ZZZ/>                              <- Выбранный элемент
     </BBB>                                   <- Выбранный элемент
     <XXX>
          <DDD>
               <EEE/>                         <- Выбранный элемент
               <FFF>
                    <HHH/>                    <- Выбранный элемент
                    <GGG>
                         <JJJ>
                              <QQQ/>
                         </JJJ>
                         <JJJ/>
                    </GGG>
                    <HHH/>
               </FFF>
          </DDD>
     </XXX>
     <CCC>
          <DDD/>
     </CCC>
</AAA>
```

#### Оси ancestor, descendant, following, preceding и self axes покрывают документ и они не перескаются, пример 5
```
xpath = //GGG/self::*

<AAA>
     <BBB>
          <CCC/>
          <ZZZ/>
     </BBB>
     <XXX>
          <DDD>
               <EEE/>
               <FFF>
                    <HHH/>
                    <GGG>                     <- Выбранный элемент
                         <JJJ>
                              <QQQ/>
                         </JJJ>
                         <JJJ/>
                    </GGG>                    <- Выбранный элемент
                    <HHH/>
               </FFF>
          </DDD>
     </XXX>
     <CCC>
          <DDD/>
     </CCC>
</AAA>
```

#### Оси ancestor, descendant, following, preceding и self axes покрывают документ и они не перескаются, пример 6
```
xpath = //GGG/ancestor::* | //GGG/descendant::* | //GGG/following::* | //GGG/preceding::* | //GGG/self::*

<AAA>                                         <- Выбранный элемент
     <BBB>                                    <- Выбранный элемент
          <CCC/>                              <- Выбранный элемент
          <ZZZ/>                              <- Выбранный элемент
     </BBB>                                   <- Выбранный элемент
     <XXX>                                    <- Выбранный элемент
          <DDD>                               <- Выбранный элемент
               <EEE/>                         <- Выбранный элемент
               <FFF>                          <- Выбранный элемент
                    <HHH/>                    <- Выбранный элемент
                    <GGG>                     <- Выбранный элемент
                         <JJJ>                <- Выбранный элемент
                              <QQQ/>          <- Выбранный элемент
                         </JJJ>               <- Выбранный элемент
                         <JJJ/>               <- Выбранный элемент
                    </GGG>                    <- Выбранный элемент
                    <HHH/>                    <- Выбранный элемент
               </FFF>                         <- Выбранный элемент
          </DDD>                              <- Выбранный элемент
     </XXX>                                   <- Выбранный элемент
     <CCC>                                    <- Выбранный элемент
          <DDD/>                              <- Выбранный элемент
     </CCC>                                   <- Выбранный элемент
</AAA>                                        <- Выбранный элемент
```

#### Оператор mod возвращает остаток от деления нацело
```
xpath = //BBB[position() mod 2 = 0 ]

<AAA>
     <BBB/>
     <BBB/>          <- Выбранный элемент
     <BBB/>
     <BBB/>          <- Выбранный элемент
     <BBB/>
     <BBB/>          <- Выбранный элемент
     <BBB/>
     <BBB/>          <- Выбранный элемент
     <CCC/>
     <CCC/>
     <CCC/>
</AAA>
```

#### Оператор div производит деление, функция floor возвращает максимальное целое чило, не большее аргумента, функция ceiling возвращает минимальное целое число, не меньшее аргумента
```
xpath = //BBB[ position() = floor(last() div 2 + 0.5) or position() = ceiling(last() div 2 + 0.5) ]

<AAA>
     <BBB/>
     <BBB/>
     <BBB/>
     <BBB/>          <- Выбранный элемент
     <BBB/>          <- Выбранный элемент
     <BBB/>
     <BBB/>
     <BBB/>
     <CCC/>
     <CCC/>
     <CCC/>
</AAA>
```

#### Функция floor возвращает максимальное целое чило, не большее аргумента, функция ceiling возвращает минимальное целое число, не меньшее аргумента
```
xpath = //CCC[ position() = floor(last() div 2 + 0.5) or position() = ceiling(last() div 2 + 0.5) ]

<AAA>
     <BBB/>
     <BBB/>
     <BBB/>
     <BBB/>
     <BBB/>
     <BBB/>
     <BBB/>
     <BBB/>
     <CCC/>
     <CCC/>          <- Выбранный элемент
     <CCC/>
</AAA>
```

[Источник](http://zvon.org/xxl/XPathTutorial/Output_rus/)